package com.util;

// 控制台工具
public class ConsoleUtil {
    /**
     * 清空当前行，只能清空一行，上面的最后一行输出的时候 不能换行。。
     */
    public static void clearCurrentLine() {
        System.out.print("\r" + repeat(" ", 200) + "\r"); // 覆盖整行
    }
    private static String repeat(String str, int num) {
        StringBuilder repeatStr = new StringBuilder();
        for (int i = 0; i < num; i++) {
            repeatStr.append(str);
        }
        return repeatStr.toString();
    }

    /**
     * 这种清空控制台的方式是伪代码， 是假的，
     * 虽然是假的，但是 基于目前的需求，也是凑合能使用的，因为，滚出视野之后，
     * 如果快速的输出一些内容也看不出来是滚出视野实现的。
     */
    public static void clearConsole() {
        // 打印 100 个换行符，让旧内容滚动出视野
        System.out.println(repeat("\n",80));

        // 通过 ANSI 码尝试移动光标（如果终端支持）
        System.out.print("\033[H"); // 尝试移动光标到左上角（部分 IDEA 版本无效）
        System.out.flush();
    }
}
